Traditional computer operating systems are designed to recognize different levels of authority to use the computer. A typical computer operating system recognizes two such levels. The first level, which can be called the root or administrator level, allows the user to make any changes he or she wants to the computer. Changes that affect multiple users are typically reserved to administrative users, because of the potential to impact multiple users in a negative manner. For example, administrative users are typically reserved the right to install device drivers, and to configure accounts for new users. The second level is the level assigned to most typical users. These users are limited in what they can do. Essentially, regular users can make changes that affect their personal files, including granting other users access to their files, but otherwise cannot make changes. Depending on the operating system, some computers recognize other intermediate levels, which grant some users rights that are similar to administrative rights, but are not as broad in scope (or are more limited in number).
While this structure generally works very well, it does have limitations. For example, sometimes it is desirable to let users have control over particular resources (e.g., one application), as if they were administrative users, but limit their control over other resources (e.g., another application). With the structure described above, this level of control is not possible. If a user is an administrative user, they can access every resource just like any other administrative user; if a user is a limited user, they can access every resource only to the extent other limited users can do so.
Accordingly, a need remains for a way to give users levels of access to resources that depends on the resource, to address these and other problems associated with the prior art.